Structure of a java program